/*
 * @Author: your name
 * @Date: 2022-01-05 11:39:29
 * @LastEditTime: 2022-01-06 09:28:21
 * @LastEditors: Please set LastEditors
 * @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
 * @FilePath: \day1-node fs\index.js
 */

// node js 遵循commonJS 规范
// 导入  通过 require 引入
// 导出 exports 和 module.exports

// 通过require 来导入
// 1.是否是内置模块  2.是否是包/插件  3.通过路径来找该文件  

// node 内置模块  fs path url


//fs 文件

let fs=require('fs')
let path=require("path")
let url=require("url")

// 读取文件
// fs.readFile("./src/index.js","utf-8",(err,data)=>{
    // throw 自定义抛出内容
//     if(err) throw err;
//     console.log("读取成功");
//     console.log(data);
// })


// 写入文件
// fs.writeFile("./src/index.js","1907C班",err=>{
//     if(err) throw err;
//     console.log("文件内容写入成功");
// })

// 追加内容
// fs.appendFile("./src/index.js","王莹",err=>{
//     if(err) throw err;
//     console.log("文件内容追加成功");
// })

// 删除文件
// fs.unlink("./src/index.js",err=>{
//     if(err) throw err;
//      console.log("文件内容删除成功");
// })

//  rename  重命名

//复制  原文件,新文件
// fs.copyFile("./index.html","./src/index.html",err=>{
//     if(err) throw err;
//     console.log("文件复制成功");
// })

// 创建文件夹
// fs.mkdir("./dist",err=>{
//     if(err) throw err;
//     console.log("目录创建成功");
// })

// stat  判断是否为文件/文件夹
// fs.stat("./dist",(err,stats)=>{
//     if(err) throw err;
//     console.log(stats.isFile());
// })

// access 没有返回值   如果已存在打印出来undefined  否报错
// console.log(fs.access("./dist",err=>{
//     if(err)throw err;
// }));

// 判断文件/文件夹是否存在
// console.log(fs.existsSync("./dist"));

// path
// path.parse()  解析出来为对象
// console.log(path.parse("./dist"));
// let obj={ root: '', dir: '.', base: 'dist', ext: '', name: 'dist' }
// path.format 拼接
// console.log(path.format(obj));
// path.join()  路径拼接

// 对于网图链接   
// 不加true query查询参数为字符串  加true为对象
// url.path(str,true)

// 删除文件夹
function delDir(filePath){
    // 首先读取文件夹
    let result=fs.readdirSync(filePath)
    // 判断result的长度
    if(result.length>0){
        // 遍历
        result.forEach(item=>{
            // 判断是否是文件  
            if(fs.statSync(path.join(filePath,item)).isFile()){
                // 删除文件
                fs.unlinkSync(path.join(filePath,item))
            }else{
                // 递归调用
                delDir(path.join(filePath,item))
            }
        })
    }

    fs.rmdirSync(filePath)
}
delDir("./dist")